home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / modula.zoo / _defn_system.def < prev    next >
Text File  |  1988-04-26  |  6KB  |  97 lines

  1. (************************************************************************
  2. *                                                                       *
  3. *                  D E F I N I T I O N   M O D U L                      *
  4. *                                                                       *
  5. *    Projekt     :   Modula Einpass Compiler (m1pc)                     *
  6. *    Hauptmodul  :                                                      *
  7. *    Modul       :   System                                             *
  8. *    Beginn      :   20.02.87                                           *
  9. *                                                                       *
  10. *    Bearbeitung                                                        *
  11. *    Freigegeben     <----                                              *
  12. *                                                                       *
  13. ************************************************************************)
  14.  
  15.  
  16. DEFINITION MODULE System; (* C. Vetterli, 22-Dec-85 / 22-Dec-85 *)
  17.  
  18. FROM SYSTEM IMPORT ADDRESS;  
  19.  
  20.   (* 'System' FOR MC68000/MC68010 runtime support of Modula-2.*)
  21.  
  22.   
  23.   (* System procedure numbers used by the compiler :          *)
  24.   (* These numbers must correspond with the procedure numbers *)
  25.   (* associated with a specific procedure in the definition   *)
  26.   (* module 'System'.                                         *)
  27.   (* 
  28.   BodyOfSystem        = 0; (* 0 is reserved for module body       *)
  29.   HALTX               = 1; (* System.HALTX  = HALT-statement      *)
  30.   MULU32              = 2; (* System.MULU32 = unsigned long MUL   *)
  31.   DIVU32              = 3; (* System.DIVU32 = unsig. long DIV/MOD *)
  32.   MULS32              = 4; (* System.MULS32 = signed long MUL     *)
  33.   DIVS32              = 5; (* System.DIVS32 = signed long DIV/MOD *)
  34.   FADDs               = 6; (* System.FADDs  = Floating ADD single *)
  35.   FSUBs               = 7; (* System.FSUBs  = Floating SUB single *)
  36.   FMULs               = 8; (* System.FMULs  = Floating MUL single *)
  37.   FDIVs               = 9; (* System.FDIVs  = Floating DIV single *)
  38.   FREMs               = 10;(* System.FREMs  = Floating REM single *)
  39.   FCMPs               = 11;(* System.FCMPs  = Floating CMP single *)
  40.   FNEGs               = 12;(* System.FNEGs  = Floating NEG single *)
  41.   FABSs               = 13;(* System.FABSs  = Floating ABS single *)
  42.   FLOATs              = 14;(* System.FLOATs = FLOAT single        *)
  43.   TRUNCs              = 15;(* System.TRUNCs = TRUNC single        *)
  44.   FADDd               = 16;(* System.FADDd  = Floating ADD double *)
  45.   FSUBd               = 17;(* System.FSUBd  = Floating SUB double *)
  46.   FMULd               = 18;(* System.FMULd  = Floating MUL double *)
  47.   FDIVd               = 19;(* System.FDIVd  = Floating DIV double *)
  48.   FREMd               = 20;(* System.FREMd  = Floating REM double *)
  49.   FCMPd               = 21;(* System.FCMPd  = Floating CMP double *)
  50.   FNEGd               = 22;(* System.FNEGd  = Floating NEG double *)
  51.   FABSd               = 23;(* System.FABSd  = Floating ABS double *)
  52.   FLOATd              = 24;(* System.FLOATd = FLOAT double        *)
  53.   TRUNCd              = 25;(* System.TRUNCd = TRUNC double        *)
  54.   FLONG               = 26;(* System.FLONG  = Floating single to double *)
  55.   FSHORT              = 27;(* System.FSHORT = Floating double to single *)
  56.   *)
  57.  
  58.   
  59.   TYPE   HaltProc = PROCEDURE();
  60.  
  61.   VAR    HALTX0   : HaltProc;                   (* use only this HALT Proc *)
  62.  
  63.   PROCEDURE HALTX;     (* argument in register D0 ! *)
  64.   
  65.   PROCEDURE MULU32;    (* arguments and quadword-result in regs. D0/D1 ! *)
  66.   PROCEDURE DIVU32;    (* arguments and quadword-result in regs. D0/D1 ! *)
  67.   PROCEDURE MULS32;    (* arguments and quadword-result in regs. D0/D1 ! *)
  68.   PROCEDURE DIVS32;    (* arguments and quadword-result in regs. D0/D1 ! *)
  69.   
  70.   PROCEDURE FADDs      (adder, addend : REAL)                : REAL;
  71.   PROCEDURE FSUBs      (minuend, subtrahend : REAL)          : REAL;
  72.   PROCEDURE FMULs      (multiplicand, multiplier : REAL)     : REAL;
  73.   PROCEDURE FDIVs      (dividend, divisor : REAL)            : REAL;
  74.   PROCEDURE FREMs      (dividend, divisor : REAL)            : REAL;
  75.   PROCEDURE FCMPs      (first, second : REAL);               (* result in CCR *)
  76.   PROCEDURE FNEGs      (toNeg : REAL)                        : REAL;
  77.   PROCEDURE FABSs      (toAbs : REAL)                        : REAL;
  78.   PROCEDURE FLOATs     (toFloat : LONGINT)                   : REAL;
  79.   PROCEDURE TRUNCs     (toTrunc : REAL)                      : LONGINT;
  80.  
  81.   PROCEDURE FADDd      (adder, addend : LONGREAL)            : LONGREAL;
  82.   PROCEDURE FSUBd      (minuend, subtrahend : LONGREAL)      : LONGREAL;
  83.   PROCEDURE FMULd      (multiplicand, multiplier : LONGREAL) : LONGREAL;
  84.   PROCEDURE FDIVd      (dividend, divisor : LONGREAL)        : LONGREAL;
  85.   PROCEDURE FREMd      (dividend, divisor : LONGREAL)        : LONGREAL;
  86.   PROCEDURE FCMPd      (first, second : LONGREAL);           (* result in CCR *)
  87.   PROCEDURE FNEGd      (toNeg : LONGREAL)                    : LONGREAL;
  88.   PROCEDURE FABSd      (toAbs : LONGREAL)                    : LONGREAL;
  89.   PROCEDURE FLOATd     (toFloat : LONGINT)                   : LONGREAL;
  90.   PROCEDURE TRUNCd     (toTrunc : LONGREAL)                  : LONGINT;
  91.  
  92.   PROCEDURE FLONG      (toConvert : REAL)                    : LONGREAL;
  93.   PROCEDURE FSHORT     (toConvert : LONGREAL)                : REAL;
  94.  
  95. END System. 
  96.   
  97.